Interpretation of pressure based gesture

ABSTRACT

A method, gesture interpretation unit and touch sensing device receiving touch input data indicating touch inputs on a touch surface of the touch sensing device, wherein the touch input data comprises positioning data and pressure data for each touch input, and determining from the touch input data: first, second and third touch input from a first, a second and a third object on the touch surface, and wherein the first, second and third objects are present on the touch surface during overlapping time periods; and while continuous contact of the first, second and third objects with the touch surface is maintained: calculating a geometric center of mass, and a pressure center of mass, for the first, second and third touch inputs; comparing the GCM with the determining a movement vector based on the result of the comparison; and moving the graphical interactive object in relation to the movement vector.

This application claims priority under 35 U.S.C. § 119 to U.S.application No. 61/765,154 filed on Feb. 15, 2013, the entire contentsof which are hereby incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to interpretation of certain inputs on atouch sensing device, and in particular to interpretation of gesturescomprising pressure or force.

BACKGROUND OF THE INVENTION

Touch sensing systems (“touch systems”) are in widespread use in avariety of applications. Typically, the touch systems are actuated by atouch object such as a finger or stylus, either in direct contact, orthrough proximity (i.e. without contact), with a touch surface. Touchsystems are for example used as touch pads of laptop computers, incontrol panels, and as overlays to displays on e.g. hand held devices,such as mobile telephones. A touch panel that is overlaid on orintegrated in a display is also denoted a “touch screen”. Many otherapplications are known in the art.

To an increasing extent, touch systems are designed to be able to detecttwo or more touches simultaneously, this capability often being referredto as “multi-touch” in the art.

There are numerous known techniques for providing multi-touchsensitivity, e.g. by using cameras to capture light scattered off thepoint(s) of touch on a touch panel, or by incorporating resistive wiregrids, capacitive sensors, strain gauges, etc into a touch panel.

WO2011/028169 and WO2011/049512 disclose multi-touch systems that arebased on frustrated total internal reflection (FTIR). Light sheets arecoupled into a panel to propagate inside the panel by total internalreflection (TIR). When an object comes into contact with a touch surfaceof the panel, the propagating light is attenuated at the point of touch.The transmitted light is measured at a plurality of outcoupling pointsby one or more light sensors. The signals from the light sensors areprocessed for input into an image reconstruction algorithm thatgenerates a 2D representation of interaction across the touch surface.This enables repeated determination of current position/size/shape oftouches in the 2D representation while one or more users interact withthe touch surface. Examples of such touch systems are found in U.S. Pat.No. 3,673,327, U.S. Pat. No. 4,254,333, U.S. Pat. No. 6,972,753,US2004/0252091, US2006/0114237, US2007/0075648, WO2009/048365,US2009/0153519, WO2010/006882, WO2010/064983, and WO2010/134865.

The touch sensing technology gives the possibility to exchange hardwareinput devices with virtual equivalents. From US-2011/0285636-A1 it isknown to have a virtual joystick, where a visual representation of ajoystick is displayed on a touch screen. Touch data from the touchscreen is processed to determine when the touch data indicates userinteraction with the virtual joystick. Joystick data is generated basedon the user interaction and the display of at least one other element onthe touch screen can be adjusted based on the joystick data. Thus, auser may control movement of an element by positioning a finger inrelation to the virtual representation of the joystick.

In touch systems in general, there is a desire to not only determine thelocation of the touching objects, but also to estimate the amount offorce by which the touching object is applied to the touch surface. Thisestimated quantity is often referred to as “pressure”, although ittypically is a force. Examples of touch force estimation in connectionto a FTIR based touch-sensing apparatus is disclosed in the Swedishapplication SE-1251014-5. An increased pressure is here detected by anincreased contact, on a microscopic scale, between a touching object anda touch surface with increasing application force. This increasedcontact may lead to a better optical coupling between the transmissivepanel and the touching object, causing an enhanced attenuation(frustration) of the propagating radiation at the location of thetouching object.

The availability of force/pressure information opens up the possibilityof creating an alternative virtual joystick for touch-based control ofsoftware applications, which takes advantage of the availableforce/pressure information.

The object of the invention is thus to provide a pressure based virtualjoystick which enables control of a graphical interactive objectpresented on a GUI of a touch sensing device.

SUMMARY OF THE INVENTION

According to a first aspect, the object is at least partly achieved witha method according to the first independent claim. The method comprisespresenting a graphical interactive object on a graphical user interface,GUI, of a touch sensing device, wherein the GUI is visible via a touchsurface of the touch sensitive device. The method further comprisesreceiving touch input data indicating touch inputs on the touch surfaceof the touch sensing device, wherein the touch input data comprisespositioning data x_(nt), y_(nt) and pressure data p_(nt) for each touchinput, and determining from the touch input data:

-   a first touch input from a first object at a first position on the    touch surface, and-   a second touch input from a second object at a second position on    the touch surface, and-   a third touch input from a third object at a third position on the    touch surface, wherein the first, second and third objects are    present on the touch surface during overlapping time periods; and    while continuous contact of said first, second and third objects    with the touch surface is maintained:-   calculating a geometric centre of mass (GCM) for said first, second    and third touch inputs using positioning data x_(nt), y_(nt) for the    touch inputs;-   calculating a pressure centre of mass (PCM) for the first, second    and third touch inputs using pressure data p_(nt) for the touch    inputs;-   comparing the GCM with the PCM;-   determining a movement vector k based on the result of the    comparison; and-   moving the graphical interactive object in relation to the movement    vector k.

With the method a user is allowed to control a graphical interactiveobject in new advanced ways. The method gives rise to a function of avirtual joystick by means of a plurality of objects, e.g. a plurality offingers of a user, and the user can by exerting pressure on the touchsurface via her fingers control the graphical interactive object in anintuitive way. No separate hardware joystick is needed, and theappearance of a touch sensing device on which the method operates willbe cleaner. Advanced games may be played on the touch sensing device. Ina first stage there is no need to define a certain area on the touchsurface where the user can interact with the GUI, whereby the methodbecomes more versatile than virtual joysticks found in prior art. Also,several users may control different graphical interactive objects at thesame time on the same GUI.

According to one embodiment, the method comprises normalising thepressure data p_(nt) for the first, second and third touch inputs. Thepressure data will then not become incorrect due to unintentionaldifferent pressures of the touch inputs.

According to one embodiment, the method comprises determining a movementvector k with a direction and magnitude based on a difference betweenthe GCM and the PCM. The moving step comprises according to oneembodiment to compare the magnitude of the movement vector k with athreshold and moving the graphical interactive object when the magnitudeexceeds the threshold. Thus, if the user unintentionally acts upon thetouch surface with a small pressure or force, this action will not movethe interactive graphical object.

According to one embodiment, the movement vector k is determined in atwo-dimensional plane of the GUI. Two-dimensional plane may be definedas an x-y-plane of the interactive graphical object. According toanother embodiment, the graphical interactive object is moved inrelation to the movement vector k in a z-plane of the interactivegraphical object. Thus, the interactive graphical object may beconfigured to be moved in different ways in relation to the movementvector k. The interactive graphical object may e.g. be moved inaccordance with the movement vector.

According to a further embodiment, the method comprises determining fromthe touch input data a further touch input from a further object at afurther position on the touch surface, wherein the steps of calculatinga geometric centre of mass, GCM, and a pressure centre of mass, PCM,comprises using also touch input data from the further touch input.Thus, more than three objects may be used to control a graphicalinteractive object. The further object may e.g. be a further finger of auser.

When in the description it is referred to a pressure, it can equallymean a force.

According to a second aspect, the object is at least partly achievedwith a gesture interpretation unit comprising a processor configured toreceive touch input data indicating touch inputs on a touch surface of atouch sensing device, wherein the touch input data comprises positioningdata x_(nt), y_(nt) and pressure data p_(nt) for each touch input, theunit further comprises a computer readable storage medium storinginstructions operable to cause the processor to perform operationscomprising:

-   presenting a graphical interactive object via a graphical user    interface, GUI, wherein the GUI is visible via the touch surface;-   determining from said touch input data:    -   a first touch input from a first object at a first position on        the touch surface, and    -   a second touch input from a second object at a second position        on the touch surface, and    -   a third touch input from a third object at a third position on        the touch surface, wherein the first, second and third objects        are present on the touch surface during overlapping time        periods; and while continuous contact of said first, second and        third objects with the touch surface is maintained:-   calculating a geometric centre of mass, GCM, for the first, second    and third touch inputs using positioning data x_(nt), y_(nt) for the    touch inputs;-   calculating a pressure centre of mass, PCM, for the first, second    and third touch inputs using pressure data p_(nt) for the touch    inputs;-   comparing the GCM with the PCM;-   determining a movement vector k based on the result of the    comparison; and-   moving the graphical interactive object in relation to the movement    vector k.

According to a third aspect, the object is at least partly achieved witha touch sensing device comprising:

-   a touch arrangement comprising a touch surface, wherein the touch    arrangement is configured to detect touch inputs on the touch    surface and to generate a signal s_(y) indicating the touch inputs;-   a touch control unit configured to receive the signal s_(y) and to    determine touch input data from said touch inputs and to generate a    touch signal s_(x) indicating the touch input data;-   a gesture interpretation unit according to any of the embodiments as    described herein, wherein the gesture interpretation unit is    configured to receive the touch signal s_(x).

According to one embodiment, the touch sensing device is an FTIR-based(Frustrated Total Internal Reflection) touch sensing device.

The positioning data may for example be a geometrical centre of a touchinput. The pressure data is according to one embodiment the totalpressure, or force, of the touch input. According to another embodiment,the pressure data is a relative pressure.

According to a fourth aspect, the object is at least partly achievedwith a computer readable storage medium comprising computer programminginstructions which, when executed on a processor, are configured tocarry out the method as described herein.

Any of the above-identified embodiments of the method may be adapted andimplemented as an embodiment of the second, third and/or fourth aspects.Thus, the gesture interpretation unit may include instructions to carryout any of the methods as described herein.

Preferred embodiments are set forth in the dependent claims and in thedetailed description.

SHORT DESCRIPTION OF THE APPENDED DRAWINGS

Below the invention will be described in detail with reference to theappended figures, of which:

FIG. 1 illustrates a touch sensing device according to some embodimentsof the invention.

FIGS. 2-3 are flowcharts of the method according to some embodiments ofthe invention.

FIG. 4A illustrates a touch surface of a device when a graphical userinterface object is presented via the GUI of the device.

FIG. 4B-D illustrates the graphical interactive object presented via theGUI in FIG. 4A when a user controls the graphical interactive object viathe virtual joystick according to some embodiments of the invention.

FIG. 5A illustrates a side view of a touch sensing arrangement.

FIG. 5B is a top plan view of an embodiment of the touch sensingarrangement of FIG. 5A.

FIG. 6 is a flowchart of a data extraction process in the device of FIG.5B.

FIG. 7 is a flowchart of a force estimation process that operates ondata provided by the process in FIG. 6.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION

1. Device

FIG. 1 illustrates a touch sensing device 3 according to someembodiments of the invention. The device 3 includes a touch arrangement2, a touch control unit 15, and a gesture interpretation unit 13. Thesecomponents may communicate via one or more communication buses or signallines. According to one embodiment, the gesture interpretation unit 13is incorporated in the touch control unit 15, and they may then beconfigured to operate with the same processor and memory. The toucharrangement 2 includes a touch surface 14 that is sensitive tosimultaneous touches. A user can touch on the touch surface 14 tointeract with a graphical user interface (GUI) of the touch sensingdevice 3. The device 3 can be any electronic device, portable ornon-portable, such as a computer, gaining console, tablet computer, apersonal digital assistant (PDA) or the like. It should be appreciatedthat the device 3 is only an example and the device 3 may have morecomponents such as RF circuitry, audio circuitry, speaker, microphoneetc. and be e.g. a mobile phone or a media player.

The touch surface 14 may be part of a touch sensitive display, a touchsensitive screen or a light transmissive panel 25 (FIG. 5A-5B). With thelast alternative the light transmissive panel 25 is then overlaid on orintegrated in a display and may be denoted a “touch sensitive screen”,or only “touch screen”. The touch sensitive display or screen may useLCD (Liquid Crystal Display) technology, LPD (Light Emitting Polymer)technology, OLED (Organic Light Emitting Diode) technology or any otherdisplay technology. The GUI displays visual output to the user via thedisplay, and the visual output is visible via the touch surface 14. Thevisual output may include text, graphics, video and any combinationthereof.

The touch surface 14 is configured to receive “touch inputs” from one orseveral users. A “touch input” is a touch on the touch surface 14 from atouching object giving rise to one or several interactions. An“interaction” occurs when the touching object affects a parametermeasured by a sensor. The touch arrangement 2, the touch surface 14 andthe touch control unit 15 together with any necessary hardware andsoftware, depending on the touch technology used, detect the touchinputs. The touch arrangement 2, the touch surface 14 and touch controlunit 15 may also detect touch input including movement of the touchinputs using any of a plurality of known touch sensing technologiescapable of detecting simultaneous contacts with the touch surface 14.Such technologies include capacitive, resistive, infrared, and surfaceacoustic wave technologies. An example of a touch technology which useslight propagating inside a panel will be explained in connection withFIG. 5A-5B.

The touch arrangement 2 is configured to generate and send the touchinputs as one or several signals s_(y) to the touch control unit 15. Thetouch control unit 15 is configured to receive the one or severalsignals s_(y) and comprises software and hardware to analyse thereceived signals s_(y), and to determine touch input data including setsof positions x_(nt), y_(nt) with associated pressure p_(t) on the touchsurface 14 by processing the signals s_(y). Each set of touch input datax_(nt), y_(nt), p_(nt) may also include identification, an ID,identifying to which touch input the data pertain. Here “n” denotes theidentity of the touch input. If the touch input is still or moved overthe touch surface 14, without losing contact with it, a plurality oftouch input data x_(nt), y_(nt), p_(nt) with the same ID will bedetermined. If the touching object making the touch input is taken awayfrom the touch surface 14 (i.e. a “touch up”), there will be no moretouch input data with this ID. Touch input data from a touch input mayalso comprise an area a_(nt) of the touch. A position x_(nt), y_(nt)referred to herein is then a centre of the area a_(nt). A position mayalso be referred to as a location. The touch control unit 15 is furtherconfigured to generate one or several touch signals s_(x) comprising thetouch input data, and to send the touch signals s_(x) to a processor 12in the gesture interpretation unit 13. The processor 12 may e.g. be acomputer programmable unit (CPU). The gesture interpretation unit 13also comprises a computer readable storage medium 11, which may includea volatile memory such as high speed random access memory (RAM-memory)and/or a non-volatile memory such as a flash memory.

The computer readable storage medium 11 comprises a touch module 16 (orset of instructions), and a graphics module 17 (or set of instructions).The computer readable storage medium 11 comprises computer programminginstructions which, when executed on the processor 12, are configured tocarry out the method according to any of the steps described herein.These instructions can be seen as divided between the modules 16, 17.The computer readable storage medium 11 may also store received touchinput data comprising positions x_(nt), y_(nt) on the touch surface 14and pressures p_(t) of the touch inputs. The touch module 16 includesinstructions to determine from the touch input data if the touch inputshave certain characteristics, such as being in a predetermined relationto each other and/or a graphical interactive object 1, and/or if one orseveral of the touch inputs are moving, and/or if continuous contactwith the touch surface 14 is maintained or is stopped, and/or thepressure of the one or several touch inputs. The touch module 16 thuskeeps track of the touch inputs, and thus the touching objects.Determining movement of a touch input may include determining a speed(magnitude), velocity (magnitude and direction) and/or acceleration(magnitude and/or direction) of the touch input or inputs.

The graphics module 17 includes instructions for rendering anddisplaying graphics via the GUI. The graphics module 17 controls theposition, movements, and actions etc. of the graphics. Morespecifically, the graphics module 17 includes instructions fordisplaying at least one graphical interactive object 1 (FIG. 4A-4D) onor via the GUI and moving it and make it react in response to certaindetermined touch inputs. The term “graphical” include any visual objectthat can be presented on the GUI and be visible for the user, such astext, icons, digital images, animations or the like. The term“interactive” includes any object that a user can affect via touchinputs to the GUI. For example, if the user makes touch inputs on thetouch surface 14 according to the method when a graphical interactiveobject 1 is displayed, the graphical interactive object 1 will react tothe touch inputs as will be explained in the following. The processor 12is configured to generate signals s_(z) or messages with instructions tothe GUI how the graphical interactive object 1 shall be processed andcontrolled, e.g. moved, change its appearance etc. The processor 12 isfurther configured to send the signals s_(z) or messages to the toucharrangement 2, where the GUI via a display is configured to receive thesignals s_(z) or messages and control the graphical interactive object 1according to the instructions.

The gesture interpretation unit 13 may thus be incorporated in any knowntouch sensing device 3 with a touch surface 14, wherein the device 3 iscapable of presenting the graphical interactive object 1 via a GUIvisible on the touch surface 14, detect touch inputs on the touchsurface 14 and to generate and deliver touch input data to the processor12. The gesture interpretation unit 13 is then incorporated into thedevice 3 such that it can process the graphical interactive object 1 inpredetermined ways when certain touch data has been determined.

2. Gesture

FIGS. 2 and 3 is a flowchart illustrating a method according to someembodiments of the invention, when a user interacts with a graphicalinteractive object 1 according to a certain pattern. The left side ofthe flowchart in FIG. 2 illustrates the touch inputs made by a user, andthe right side of the flowchart illustrates how the gestureinterpretation unit 13 responds to the touch inputs. The left and theright sides of the flowchart are separated by a dotted line. The methodmay be preceded by setting the touch sensing device 3 in a certainstate, e.g. an interaction state such as a joystick state. This certainstate may invoke the function of the gesture interpretation unit 13,whereby the method which will now be described with reference to FIGS. 2and 3 can be executed.

At first, the graphical interactive object 1 is presented via the GUI ofthe touch sensing device 3 (A1). The graphical interactive object 1 maybe a graphical interactive object 1 in a game or in any other computerenvironment, and by e.g. an aeroplane, a car, an animated person etc.The user may now initiate interaction with the graphical interactiveobject 1 by making certain touch inputs on the touch surface 14. Tocreate the function of a virtual joystick, the user makes a first touchinput 4 on the touch surface 14 with a first object 5 (A2). The firsttouch input 4 to the touch surface 14 can then be determined, includinga first position 6 x_(1t), y_(1t) of the first object 5 on the touchsurface 14 (A3). The user now makes a second touch input 7 to the touchsurface 14 with a second object 8 (A4). The second touch input to thetouch surface 14 can then be determined, including a second position 9x_(2t), y_(2t) of the second object 8 on the touch surface 14 (A5). Theuser also makes a third touch input 10 with a third object 23 on thetouch surface 14 (A6). The third touch input to the touch surface 14 canthen be determined, including a third position 24 x_(3t), y_(3t) of thethird object 23 on the touch surface 14 (A7). The first, second andthird objects 5, 8, 23 are present on the touch surface 2 duringoverlapping time periods. The first, second and third objects 5, 8, 23may simultaneously touch the touch surface 14, and the correspondingtouch inputs 4, 7, 10 can then be simultaneously detected anddetermined. According to one embodiment, at least one further touchinput from a further object 30 at a further position 31 on the touchsurface 14 is determined, as illustrated in FIG. 4D.

The method now continues as illustrated in the flowchart in FIG. 3.While continuous contact of the first 5, second 8, third 23 objects andif present, any further object or objects 30 with the touch surface 14is maintained (A8), the following steps A9-A13 are performed. A furtherprerequisite for the method to perform the steps A9-A13 is according toone embodiment that the positions 6, 9, 24 of the first, second andthird objects 5, 8, 23 are within a certain area, and/or that thedistances between the positions 6, 9, 24 are within certain limits,and/or that the positions 6, 9, 24 are spread in a certain pattern. Thearea, limits and/or pattern may e.g. correspond to characteristics of ahand and/or fingers.

In A9, a geometric centre of mass (GCM) is calculated for the first,second and third touch inputs 4, 7, 10 using positioning data x_(nt),y_(nt) for the touch inputs. Here, n denotes the identity and t time ofthe positioning data. The geometric centre of mass, also calledgeometric centre or centroid, is the geometric centre of an area limitedby the positions x_(nt), y_(nt) for the touch inputs in a plane parallelto the touch surface 14. Thus, if three touch inputs have beendetermined, the shape of the area is a triangle. The geometric centreX_(GMC), Y_(GMC) may then be calculated by using the equations below:

$\begin{matrix}{{X_{GCM} = \frac{\sum{m_{i} \cdot x_{i}}}{\sum m_{i}}},{Y_{GCM} = \frac{\sum{m_{i} \cdot y_{i}}}{\sum m_{i}}}} & (1)\end{matrix}$wherein in denotes the mass of the position i, x_(i) is the distancefrom an origo to the position i in the x-direction in a coordinatesystem, and y_(i) is the distance from origo to the position i in they-direction in the coordinate system. For calculating the geometriccentre of mass, the mass m_(i) is set to 1.

In A10, a pressure centre of mass (PCM) is calculated for the first,second and third touch inputs 4, 7, 10 using pressure data p_(nt) forthe touch inputs. According to one embodiment, the pressure data p_(nt)for the touch inputs is normalized before the PCM is calculated. Thepressure data p_(nt), or force data, is according to one embodimentcalculated with the same equations (1) as used for calculating thegeometric centre of mass. m_(i) then denotes the pressure, or force, ofthe position i. Thus, an x-coordinate X_(PCM) and a y-coordinate Y_(PCM)is calculated which corresponds to the instantaneous pressure centre ofmass. The coordinates are determined in the same coordinate system asthe GCM.

If any further object 30, 33 also is present and touch input data forthis object 30, 33 has been determined, a geometric centre of mass and apressure centre of mass is calculated using also touch input data fromthis or these further touch input(s). According to one embodiment, it isalso determined that the touch input data from this or these furtherobject(s) is/are grouped together with the other determined touch inputdata. For example, the position(s) of the further object(s) has to bewithin a predetermined distance to the positions of the other determinedtouch input data.

Thereafter, the geometric centre of mass (GCM) is compared with thepressure centre of mass (PCM) (A11), and a movement vector k isdetermined based on the result of the comparison (A12). The movementvector k is established by comparing X_(GCM) with X_(PCM) anddetermining the difference, X_(DIFF), and comparing Y_(GCM) with Y_(PCM)and determining the difference, Y_(DIFF). The extensions of the movementvector k along an x-axis and y-axis in a coordinate system having itsorigo in the GCM, are then made up of the differences X_(DIFF) andY_(DIFF). The graphical interactive object 1 is then moved in relationto the movement vector k (A13). Thus, the function of a virtual joystickhas been created. As understood the graphical interactive object 1 ismost commonly moved in relation to the latest position of the graphicalinteractive object 1 itself.

As long as continuous contact of the first, second and third objects 5,8, 23, and any further object 30, 33 with the touch surface ismaintained, the method hereafter returns to A9 as illustrated in theflowchart and continuously determines a movement vector k according towhich the graphical interactive object 1 is moved. Thus, new positionsx_(nt), y_(nt) and pressures p_(nt) are continuously determined from thetouch input data, such that new GCM and PCM continuously can bedetermined. Thus, if any of the objects 5, 8, 23 etc are moved over thetouch surface 14, new positions of the objects 5, 8, 23 etc will bedetermined and used for determining a new GCM. According to oneembodiment, if the positions of the mentioned first, second, third etc.objects are the same, no new GCM has to be calculated.

The determined movement vector k has, if the differences X_(DIFF) andY_(DIFF) are not both zero, a direction, and movement of the graphicalinteractive object 1 is made in relation to this direction. For example,the graphical interactive object 1 is moved in the same direction as thedirection of the movement vector, or the graphical interactive object 1may be configured to be moved in another direction determined inrelation to the direction of the movement vector k, for example in theopposite direction of or in an angular relationship to the direction ofthe movement vector k. Each graphical interactive object 1, or set ofgraphical interactive objects 1, is then configured to react to acertain virtual joystick made up of the described touch inputs. Agraphical interactive object 1 may for example be made to respond to acertain virtual joystick by e.g. touching on the graphical interactiveobject 1 and immediately after make the necessary touch inputs on thetouch surface 14 to create the joystick function. According to anotherembodiment, certain areas on the touch surface 14 are dedicated tocreate virtual joysticks. The virtual joystick function may be invokedby setting the touch sensing device 3 in a certain state as haspreviously been explained.

The movement vector k also has a magnitude which is equal to theextension of the movement vector k in the coordinate system. Thegraphical interactive object 1 is according to one embodiment moved inrelation to this magnitude. For example, a velocity or acceleration ofthe graphical interactive object 1 is set in relation to the magnitude.

Thus, if the magnitude is increased or decreased, the velocity oracceleration of the graphical interactive object 1 is changedaccordingly in accordance with a scale ratio. If the magnitude isconstant, the velocity or acceleration is for example then alsoconstant. The velocity and/or acceleration may also be determined inrelation to a time of which the movement vector k is determined.According to one embodiment, if the same or substantially the samevector k is determined in several subsequent time steps, the velocity orthe acceleration of the graphical interactive object 1 is increased ordecreased during the time steps.

According to one embodiment, the method comprises comparing themagnitude of the movement vector k with a threshold and moving thegraphical interactive object 1 when the magnitude exceeds the threshold.The graphical interactive object 1 can then be prevented from movingwhen the user for example has unintentionally shaking hands or otherwisemakes small pressure touch inputs not intended to move the graphicalinteractive object 1.

As long as continuous contact of the first, second, third, and anyfurther object, is determined, the method continuous as illustrated inthe flowchart in FIG. 3, and the movement vector k is continuouslydetermined and the graphical interactive object 1 is moved in relationto the movement vector k.

The movement vector k is according to one embodiment determined in atwo-dimensional plane of the GUI. For example, the two-dimensional planeis defined as an x-y-plane of the interactive graphical object 1. Thex-y-plane may be parallel to the plane of the touch surface 14. Thetwo-dimensional plane may instead be defined as a z-x-plane of theinteractive graphical object 1, and thus perpendicular to the plane ofthe touch surface 14.

In the text and figures it is referred to only one graphical interactiveobject 1, but it is understood that a plurality of independent graphicalinteractive objects 1 may be displayed via the GUI at the same time andthat one or several users may interact with and control the differentgraphical interactive objects 1 independently of each other as explainedherein.

According to one embodiment, the graphical interactive object 1 is movedin relation to the movement vector k in a graphical environment of theGUI. The graphical interactive object 1 can then be moved in relation tothe graphical environment in different manners. For example, the object1 can be located in the same place on the GUI, and the graphicalenvironment can be made to move such that it appears for the user as theobject 1 is moved in the graphical environment when the user controlsthe object 1 via the touch inputs. Thus, the object 1 is moved inrelation to the movement vector k, but it is the graphical environmentthat stages the movement such that the object 1 appears to the user asmoving. For example, a movement of the object 1 in a coordinate systemof the object 1 in relation to the determined movement vector k, istranslated to a movement of the graphical environment such that theobject 1 appears to move in relation to the movement vector k.

FIGS. 4A-4D illustrates the touch surface 14 of various points ofperformance of the method according to some embodiments of theinvention. The touch surface 14 is part of the touch arrangement 2 (FIG.1), and is here provided with a frame as illustrated in the figures. InFIG. 4A the graphical interactive object 1, here in the shape of a smallairplane 1, is presented via the GUI and is visible from the touchsurface 14. The airplane 1 is here located at a starting positiondenoted with a circle. In the figure the first 5, a second 8 and a thirdobject 23 are illustrated in the shape of three fingers 5, 8, 23 of auser. The user has placed the first finger 5 at a first position 6x_(1t), y_(1t), the second finger 8 at a second position 9 x_(2t),y_(2t) and the third finger 10 at a third position 24 x_(3t), y_(t3) onthe touch surface 14. Touch inputs 4, 7 and 10 from the objects 5, 8, 23are then detected by the touch control unit 15, and position coordinatesand pressures for each touch input is determined. The positioncoordinates x_(1t), y_(1t), x_(2t), y_(2t) and x_(3t), y_(3t) andpressures of the touch inputs are receive to the processor 12 in thegesture interpretation unit 13 as touch input data. With instructionsstored in the computer readable medium 11, the processor 12 nowdetermines if the first 5, second 8 and third objects are present on thetouch surface 14 during overlapping time periods. In this case the userholds her fingers 5, 8, 23 on the touch surface 14 during overlappingtime periods. The user continues to hold her fingers 5, 8, 23 on thetouch surface 14, and a geometric centre of mass, GCM, is calculated bythe processor 12 (FIG. 1). The geometric centre of mass is indicated inthe FIG. 4B. In the FIGS. 4B and 4C, the fingers 5, 8, 23 are removed tomake it easier to explain the method, but the positions 6, 9, 24 of thefingers 5, 8, 23 are indicated in place of the fingers. The user actsupon the touch surface 14 with a pressure p_(1t) at position 6, with apressure p_(2t) at position 9, and with a pressure p_(3t) at position24. A pressure centre of mass, PCM, is then calculated by the processor1 (FIG. 1) using the pressure data and coordinates for each touch input.A movement vector k can then be determined as has previously beenexplained as a result of comparing the GCM with the PCM. The movementvector k is indicated in the figure as a small arrow. The graphicalinteractive object 1 is then moved in relation to the movement vector k.As understood the positions of the fingers 5, 8, 23 can be differentthan the positions indicated in the figure.

In FIGS. 4B and 4C, it is illustrated that the airplane 1 can be definedto be moved in different ways in relation to the movement vector k. Themovement vector k is here determined in a two-dimensional plane of theGUI, and in FIG. 4B the two-dimensional plane is defined as the xy-planeof the airplane 1. The x-y-plane of the airplane 1 is here the same asthe xy-plane of the touch surface 14. Thus, in response to a movementvector k with a certain direction, the airplane 1 is moved in e.g. thesame direction as this certain direction. This is illustrated in theFIG. 4B where the airplane 1 has moved a distance from the startingposition denoted by a circle. The distance is illustrated as a dottedline. As previously has been explained, the velocity and/or accelerationof the airplane 1 can be determined in accordance with the magnitude ofthe movement vector k. Thus, the user now controls the movement of theairplane 1 in the x-y-plane of the touch surface 14 by pressing on thetouch surface 14 with her fingers. According to one embodiment, theairplane 1 is moved with a pre-set velocity or acceleration in thedirection of the vector k.

In FIG. 4C, the airplane 1 is moved in relation to the movement vector kin a z-plane of the airplane 1. Thus, as illustrated in FIG. 4C, inresponse to a movement vector k in a certain direction, the airplane 1is adjusted in the direction of the vector k, and “falls” along thez-axis as illustrated in the FIG. 4C as a smaller airplane 1. Thefurther down the airplane 1 falls, the smaller appearance of theairplane 1. The airplane 1 can be configured to be moved in relation tothe movement vector k in various ways. For example, if the movementvector k is in the opposite direction as illustrated in FIG. 4C, theairplane 1 can be configured to move in the opposite z-direction, andthus the airplane 1 will become closer to the user and the appearance ofthe airplane 1 will become larger. The z-axis is here an axisperpendicular to the xy-plane of the touch surface 14.

According to another example, the graphical interactive object 1 ismoved in relation to the movement vector k around an axis in thexyz-plane of the graphical interactive object 1. The axis has accordingto one embodiment an extension in a crosswise direction of the graphicalinteractive object 1. The crosswise direction is e.g. a directionperpendicular to a movement direction of the graphical interactiveobject 1. The graphical interactive object 1 can then be configured tobe rotated 360° around the axis such that it can be seen from differentviews. The axis may according to another embodiment be placed a distancefrom the graphical interactive object 1, such that the object 1 then canrotate along a periphery of a circle with its centre in the axis and aradius corresponding to the distance. The vector k is according to oneembodiment scaled to an area of the touch surface 14. The magnitude ofthe vector k does never exceed a boundary made up of straight linesconnecting the positions 6, 9, 24 etc. of the first, second and thirdobjects 5, 8, 23. The area made up of this boundary may be scaled to anarea of the touch surface 14 where the graphical interactive object 1can be active. A certain magnitude of the vector k then corresponds toe.g. a velocity, acceleration or distance adapted to the area of thetouch surface 14.

In FIG. 4D a further example is illustrated where the user has placedfive fingers on the touch surface 14 in order to create the function ofa virtual joystick. The fingers may belong to the same hand. The fingersare here not shown for sake of simplicity, but the positions on thetouch surface 14 of the touch inputs from the fingers are indicated. Asillustrated the first finger 5 gives rise to a first position 6, thesecond finger 8 gives rise to a second position 9, the third finger 23gives rise to a third position 24, a fourth finger 30 (FIG. 3A) givesrise to a fourth position 31 and a fifth finger 33 (FIG. 3A) gives riseto a fifth position 34. The touch inputs may of course come from otherobjects than fingers. The first finger 5 is also referred to as a firstobject 5, the second finger 8 as a second object 8, the third finger 23as a third object 23, the fourth finger 30 as a further object 30 and afifth finger 33 as a still further object 33. It has previously beenexplained that the first, second and third touch inputs 4, 7, 10 havebeen determined, and now also a further touch input 29 from the fourthobject 30 at a fourth position 31, and a still further touch input 32from the fifth object 33 at a fifth position 34 on the touch surface 13are determined. All the objects 5, 8, 23, 30, 33 are present on thetouch surface 14 during overlapping time periods. In the FIG. 4D onlythe touch inputs from the fourth and fifth objects 29 and 32 are denotedfor simplicity. While continuous contact of the objects 5, 8, 23, 30, 33with the touch surface 14 is maintained, a geometric centre of mass,GCM, is calculated for the touch inputs 4, 7, 10, 29, 32 usingpositioning data x_(nt), y_(nt) for the touch inputs. Every touch inputalso gives rise to a pressure. As indicated in the figure, the firstfinger 5 gives rise to a first pressure p_(1t), the second finger 8gives rise to a second pressure p_(2t), the third finger 23 gives riseto a third pressure p_(3t), the fourth finger gives rise to a fourthpressure p_(4t) and the fifth finger gives rise to a fifth pressurep_(5t). Also, a pressure centre of mass, PCM, is calculated for thetouch inputs 4, 7, 10, 29, 32 using pressure data p_(nt) (p_(1t),p_(2t), p^(3t), p_(4t) and p_(5t)) for the touch inputs. The pressuresmay be normalized as has previously been explained. The GCM and the PCMare now compared and a movement vector k is determined based on theresult of the comparison, thus the differences between the GCM and PCMas has previously been explained. The graphical interactive object 1 isthen moved in relation to the movement vector k as has previously beenexplained.

3. Touch Technology Based on FTIR

As explained before, the invention can be used together with severalkinds of touch technologies. One kind of touch technology based on FTIRwill now be explained. The touch technology can advantageously be usedtogether with the invention to deliver touch input data x_(nt), y_(nt),p_(nt) to the processor 12 of the gesture interpretation unit 13 (FIG.1).

In FIG. 5A a side view of an exemplifying arrangement 27 for sensingtouches in a known touch sensing device is shown. The arrangement 27 maye.g. be part of the touch arrangement 2 illustrated in FIG. 1A. Thearrangement 27 includes a light transmissive panel 25, a lighttransmitting arrangement comprising one or more light emitters 19 (oneshown) and a light detection arrangement comprising one or more lightdetectors 20 (one shown). The panel 25 defines two opposite andgenerally parallel top and bottom surfaces 28, 18 and may be planar orcurved. In FIG. 5A, the panel 25 is rectangular, but it could have anyextent. A radiation propagation channel is provided between the twoboundary surfaces 28, 18 of the panel 25, wherein at least one of theboundary surfaces 28, 18 allows the propagating light to interact withone or several touching object 21, 22. Typically, the light from theemitter(s) 19 propagates by total internal reflection (TR) in theradiation propagation channel, and the detector(s) 20 are arranged atthe periphery of the panel 25 to generate a respective output signalwhich is indicative of the energy of received light.

As shown in the FIG. 5A, the light may be coupled into and out of thepanel 25 directly via the edge portions of the panel 25 which connectsthe top 28 and bottom surfaces 18 of the panel 25. The previouslydescribed touch surface 14 is according to one embodiment at least partof the top surface 28. The detector(s) 20 may instead be located belowthe bottom surface 18 optically facing the bottom surface 18 at theperiphery of the panel 25. To direct light from the panel 25 to thedetector(s) 20, coupling elements might be needed. The detector(s) 20will then be arranged with the coupling element(s) such that there is anoptical path from the panel 25 to the detector(s) 20. In this way, thedetector(s) 20 may have any direction to the panel 25, as long as thereis an optical path from the periphery of the panel 25 to the detector(s)20. When one or several objects 21, 22 is/are touching a boundarysurface of the panel 25, e.g. the touch surface 14, part of the lightmay be scattered by the object(s) 21, 22, part of the light may beabsorbed by the object(s) 21, 22 and part of the light may continue topropagate unaffected. Thus, when the object(s) 21, 22 touches the touchsurface 14, the total internal reflection is frustrated and the energyof the transmitted light is decreased. This type of touch-sensingapparatus is denoted “FTIR system” (FTIR—Frustrated Total InternalReflection) in the following. A display may be placed under the panel25, i.e. below the bottom surface 18 of the panel. The panel 25 mayinstead be incorporated into the display, and thus be a part of thedisplay.

The location of the touching objects 21, 22 may be determined bymeasuring the energy of light transmitted through the panel 25 on aplurality of detection lines. This may be done by e.g. operating anumber of spaced apart light emitters 19 to generate a correspondingnumber of light sheets into the panel 25, and by operating the lightdetectors 20 to detect the energy of the transmitted energy of eachlight sheet. The operating of the light emitters 19 and light detectors20 may be controlled by a touch processor 26. The touch processor 26 isconfigured to process the signals from the light detectors 20 to extractdata related to the touching object or objects 21, 22. The touchprocessor 26 is part of the touch control unit 15 as indicated in thefigures. A memory unit (not shown) is connected to the touch processor26 for storing processing instructions which, when executed by the touchprocessor 26, performs any of the operations of the described method.

The light detection arrangement may according to one embodiment compriseone or several beam scanners, where the beam scanner is arranged andcontrolled to direct a propagating beam towards the light detector(s).

As indicated in FIG. 5A, the light will not be blocked by a touchingobject 21, 22. If two objects 21 and 22 happen to be placed after eachother along a light path from an emitter 19 to a detector 20, part ofthe light will interact with both these objects 21, 22. Provided thatthe light energy is sufficient, a remainder of the light will interactwith both objects 21, 22 and generate an output signal that allows bothinteractions (touch inputs) to be identified. Normally, each such touchinput has a transmission in the range 0-1, but more usually in the range0.7-0.99. The total transmission t_(i) along a light path i is theproduct of the n individual transmissions t_(k) of the touch points onthe light path: t_(i)=Π_(k=1) ^(n) t_(k). Thus, it may be possible forthe touch processor 26 to determine the locations of multiple touchingobjects 21, 22, even if they are located in the same line with a lightpath.

FIG. 5B illustrates an embodiment of the FTIR system, in which a lightsheet is generated by a respective light emitter 19 at the periphery ofthe panel 25. Each light emitter 19 generates a beam of light thatexpands in the plane of the panel 25 while propagating away from thelight emitter 19. Arrays of light detectors 20 are located around theperimeter of the panel 25 to receive light from the light emitters 19 ata number of spaced apart outcoupling points within an outcoupling siteon the panel 25. As indicated by dashed lines in FIG. 5B, eachsensor-emitter pair 19, 20 defines a detection line. The light detectors20 may instead be placed at the periphery of the bottom surface 18 ofthe touch panel 25 and protected from direct ambient light propagatingtowards the light detectors 20 at an angle normal to the touch surface14. One or several detectors 20 may not be protected from direct ambientlight, to provide dedicated ambient light detectors.

The detectors 20 collectively provide an output signal, which isreceived and sampled by the touch processor 26. The output signalcontains a number of sub-signals, also denoted “projection signals”,each representing the energy of light emitted by a certain light emitter19 and received by a certain light sensor 20. Depending onimplementation, the processor 26 may need to process the output signalfor separation of the individual projection signals. As will beexplained below, the processor 26 may be configured to process theprojection signals so as to determine a distribution of attenuationvalues (for simplicity, referred to as an “attenuation pattern”) acrossthe touch surface 14, where each attenuation value represents a localattenuation of light.

4. Data Extraction Process in an FTIR System

FIG. 6 is a flow chart of a data extraction process in an FTIR system.The process involves a sequence of steps B1-B4 that are repeatedlyexecuted, e.g. by the touch processor 26 (FIG. 5A). In the context ofthis description, each sequence of steps B1-B4 is denoted a frame oriteration. The process is described in more detail in the Swedishapplication No 1251014-5, filed on Sep. 11, 2012, which is incorporatedherein in its entirety by reference.

Each frame starts by a data collection step B1, in which measurementvalues are obtained from the light detectors 20 in the FTIR system,typically by sampling a value from each of the aforementioned projectionsignals. The data collection step B1 results in one projection value foreach detection line. It may be noted that the data may, but need not, becollected for all available detection lines in the FTIR system. The datacollection step B1 may also include pre-processing of the measurementvalues, e.g. filtering for noise reduction.

In a reconstruction step B2, the projection values are processed forgeneration of an attenuation pattern. Step B2 may involve converting theprojection values into input values in a predefined format, operating adedicated reconstruction function on the input values for generating anattenuation pattern, and possibly processing the attenuation pattern tosuppress the influence of contamination on the touch surface(fingerprints, etc.).

In a peak detection step B3, the attenuation pattern is then processedfor detection of peaks, e.g. using any known technique. In oneembodiment, a global or local threshold is first applied to theattenuation pattern, to suppress noise. Any areas with attenuationvalues that fall above the threshold may be further processed to findlocal maxima. The identified maxima may be further processed fordetermination of a touch shape and a center position, e.g. by fitting atwo-dimensional second-order polynomial or a Gaussian bell shape to theattenuation values, or by finding the ellipse of inertia of theattenuation values. There are also numerous other techniques as is wellknown in the art, such as clustering algorithms, edge detectionalgorithms, standard blob detection, water shedding techniques, floodfill techniques, etc. Step B3 results in a collection of peak data,which may include values of position, attenuation, size, and shape foreach detected peak. The attenuation may be given by a maximumattenuation value or a weighted sum of attenuation values within thepeak shape.

In a matching step B4, the detected peaks are matched to existingtraces, i.e. traces that were deemed to exist in the immediatelypreceding frame. A trace represents the trajectory for an individualtouching object on the touch surface as a function of time. As usedherein, a “trace” is information about the temporal history of aninteraction. An “interaction” occurs when the touch object affects aparameter measured by a sensor. Touches from an interaction detected ina sequence of frames, i.e. at different points in time, are collectedinto a trace. Each trace may be associated with plural trace parameters,such as a global age, an attenuation, a location, a size, a locationhistory, a speed, etc. The “global age” of a trace indicates how longthe trace has existed, and may be given as a number of frames, the framenumber of the earliest touch in the trace, a time period, etc. Theattenuation, the location, and the size of the trace are given by theattenuation, location and size, respectively, of the most recent touchin the trace. The “location history” denotes at least part of thespatial extension of the trace across the touch surface, e.g. given asthe locations of the latest few touches in the trace, or the locationsof all touches in the trace, a curve approximating the shape of thetrace, or a Kalman filter. The “speed” may be given as a velocity valueor as a distance (which is implicitly related to a given time period).Any known technique for estimating the tangential speed of the trace maybe used, taking any selection of recent locations into account. In yetanother alternative, the “speed” may be given by the reciprocal of thetime spent by the trace within a given region which is defined inrelation to the trace in the attenuation pattern. The region may have apre-defined extent or be measured in the attenuation pattern, e.g. givenby the extent of the peak in the attenuation pattern.

The matching step B4 may be based on well-known principles and will notbe described in detail. For example, step B4 may operate to predict themost likely values of certain trace parameters (location, and possiblysize and shape) for all existing traces and then match the predictedvalues of the trace parameters against corresponding parameter values inthe peak data produced in the peak detection step B3. The prediction maybe omitted. Step B4 results in “trace data”, which is an updated recordof existing traces, in which the trace parameter values of existingtraces are updated based on the peak data. It is realized that theupdating also includes deleting traces deemed not to exist (caused by anobject being lifted from the touch surface 14, “touch up”), and addingnew traces (caused by an object being put down on the touch surface 14,“touch down”).

Following step B4, the process returns to step B1. It is to beunderstood that one or more of steps B1-B4 may be effected concurrently.For example, the data collection step B1 of a subsequent frame may beinitiated concurrently with any one of the steps B2-B4. The result ofthe method steps B1-B4 is trace data, which includes data such aspositions (x_(nt), y_(nt)) for each trace. This data has previously beenreferred to as touch input data.

5. Detect Pressure

The current attenuation of the respective trace can be used forestimating the current application force for the trace, i.e. the forceby which the user presses the corresponding touching object against thetouch surface. The estimated quantity is often referred to as a“pressure”, although it typically is a force. The process is describedin more detail in the above-mentioned application No. 1251014-5. Itshould be recalled that the current attenuation of a trace is given bythe attenuation value that is determined by step B2 (FIG. 6) for a peakin the current attenuation pattern.

According to one embodiment, a time series of estimated force values isgenerated that represent relative changes in application force over timefor the respective trace. Thereby, the estimated force values may beprocessed to detect that a user intentionally increases or decreases theapplication force during a trace, or that a user intentionally increasesor decreases the application force of one trace in relation to anothertrace.

FIG. 7 is a flow chart of a force estimation process according to oneembodiment. The force estimation process operates on the trace dataprovided by the data extraction process in FIG. 6. It should be notedthat the process in FIG. 7 operates in synchronization with the processin FIG. 6, such that the trace data resulting from a frame in FIG. 6 isthen processed in a frame in FIG. 7. In a first step C1, a current forcevalue for each trace is computed based on the current attenuation of therespective trace given by the trace data. In one implementation, thecurrent force value may be set equal to the attenuation, and step C1 maymerely amount to obtaining the attenuation from the trace data. Inanother implementation, step C1 may involve a scaling of theattenuation. Following step C1, the process may proceed directly to stepC3. However, to improve the accuracy of the estimated force values, stepC2 applies one or more of a number of different corrections to the forcevalues generated in step C1. Step C2 may thus serve to improve thereliability of the force values with respect to relative changes inapplication force, reduce noise (variability) in the resulting timeseries of force values that are generated by the repeated execution ofsteps C1-C3, and even to counteract unintentional changes in applicationforce by the user. As indicated in FIG. 7, step C2 may include one ormore of a duration correction, a speed correction, and a sizecorrection. The low-pass filtering step C3 is included to reducevariations in the time series of force values that are produced by stepC1/C2. Any available low-pass filter may be used.

Thus, each trace now also has force values, thus, the trace dataincludes positions (x_(nt), y_(nt)) and forces (also referred to aspressure) (p_(nt)) for each trace. These data can be used as touch inputdata to the gesture interpretation unit 13 (FIG. 1).

The present invention is not limited to the above-described preferredembodiments. Various alternatives, modifications and equivalents may beused. Therefore, the above embodiments should not be taken as limitingthe scope of the invention, which is defined by the appending claims.

The invention claimed is:
 1. A method, comprising: presenting agraphical interactive object on a graphical user interface (GUI) of atouch sensing device, wherein the GUI is visible via a touch surface ofthe touch sensitive device; receiving touch input data indicating touchinputs on the touch surface of the touch sensing device, wherein thetouch input data includes positioning data x_(nt), y_(nt) and pressuredata p_(nt) for each touch input; determining, from said touch inputdata, a first touch input from a first object at a first position on thetouch surface, a second touch input from a second object at a secondposition on the touch surface, and a third touch input from a thirdobject at a third position on the touch surface, wherein said first,second and third objects are present on the touch surface duringoverlapping time periods; and while continuous contact of said first,second and third objects with the touch surface is maintainedcalculating a geometric centre of mass (GCM) for a shape defined bypositions x_(nt), y_(nt) of at least three touch inputs, calculating,for said at least three touch inputs, a pressure centre of mass (PCM)based on the positions x_(nt), y_(nt), and pressure data p_(nt) of eachof said at least three touch inputs, comparing said GCM with said PCM todetermine an x-component distance and a y-component distance between theGCM and the PCM, determining a movement vector k based on thecomparison, the movement vector k having a magnitude and a direction,and extensions of the movement vector k being the x-component distanceand the y-component distance in a plane of the touch surface with theGCM as the origin of the movement vector k, and moving the graphicalinteractive object in relation to the movement vector k.
 2. The methodaccording to claim 1, further comprising: normalising said pressure datap_(nt) for said at least three touch inputs.
 3. The method according toclaim 1, further comprising: determining the movement vector k based ona difference between the GCM and the PCM.
 4. The method according toclaim 3, wherein the moving comprises: comparing the magnitude of themovement vector k with a threshold; and moving the graphical interactiveobject when the magnitude exceeds the threshold.
 5. The method accordingto claim 1, wherein the movement vector k is determined in atwo-dimensional plane of the GUI.
 6. The method according to claim 5,wherein the two-dimensional plane is defined as a x-y-plane of thegraphical interactive object.
 7. The method according to claim 6,wherein the moving comprises: moving the graphical interactive object inrelation to the movement vector k in a z-plane of the graphicalinteractive object.
 8. The method according to claim 1, furthercomprising: determining from said touch input data a further touch inputfrom a further object at a further position on the touch surface,wherein the calculating a geometric centre of mass (GCM) and thecalculating a pressure centre of mass (PCM) include using touch inputdata from the further touch input.
 9. A non-transitory computer readablestorage medium comprising computer programming instructions which, whenexecuted on a processor, causes the processor to carry out the method ofclaim
 1. 10. The method according to claim 1, wherein the first, secondand third touch inputs are entirely on portions of the touch surfaceconfigured to detect the positions x_(nt), y_(nt), and the pressure datap_(nt) for the first, second and third touch inputs.
 11. A gestureinterpretation unit including a processor configured to receive touchinput data indicating touch inputs on a touch surface of a touch sensingdevice, wherein the touch input data includes positioning data x_(nt),y_(nt) and pressure data p_(nt) for each touch input, the gestureinterpretation unit further including a non-transitory computer readablestorage medium storing instructions operable to cause the processor toperform a method comprising: presenting a graphical interactive objectvia a graphical user interface (GUI), wherein the GUI is visible via thetouch surface; determining from said touch input data a first touchinput from a first object at a first position on the touch surface, asecond touch input from a second object at a second position on thetouch surface, and a third touch input from a third object at a thirdposition on the touch surface, wherein said first, second and thirdobjects are present on the touch surface during overlapping timeperiods; and while continuous contact of said first, second and thirdobjects with the touch surface is maintained calculating a geometriccentre of mass (GCM) for a shape defined by positions x_(nt), y_(nt) ofat least three touch inputs, calculating, for said at least three touchinputs, a pressure centre of mass (PCM) based on the positions x_(nt),y_(nt), and pressure data p_(nt) of each of said at least three touchinputs, comparing said GCM with said PCM to determine an x-componentdistance and a v-component distance between the GCM and the PCM,determining a movement vector k based on the comparison, the movementvector k having a magnitude and a direction, and extensions of themovement vector k being the x-component distance and the y-componentdistance in a plane of the touch surface with the GCM as the origin ofthe movement vector k, and moving the graphical interactive object inrelation to the movement vector k.
 12. The unit according to claim 11,further including instructions for normalising said pressure data p_(nt)for said at least three touch inputs.
 13. The unit according to claim11, further including instructions for determining the movement vector kbased on a difference between the GCM and the PCM.
 14. The unitaccording to claim 13, further including instructions for comparing themagnitude with a threshold, and moving the graphical interactive objectwhen the magnitude exceeds the threshold.
 15. The unit according toclaim 11, further including instructions for determining the movementvector k in a two-dimensional plane of the GUI.
 16. The unit accordingto claim 15, wherein the two-dimensional plane is defined as a x-y-planeof the graphical interactive object.
 17. The unit according to claim 16,further including instructions for moving the graphical interactiveobject in relation to the movement vector k in a z-plane of thegraphical interactive object.
 18. The unit according to claim 11,further including instructions for determining, from said touch inputdata, a further touch input from a further object of a user at a furtherposition on the touch surface, and the calculating a geometric centre ofmass (GCM) and the calculating a pressure centre of mass (PCM) includeusing touch input data from the further touch input.
 19. The unitaccording to claim 11, wherein the touch sensing device is a FrustratedTotal Internal Reflection (FTIR)-based touch sensing device.
 20. A touchsensing device comprising: a touch arrangement including a touchsurface, wherein the touch arrangement is configured to detect touchinputs on said touch surface and to generate a signal s_(y) indicativeof said touch inputs; a touch control unit including at least aprocessor, the processor being configured to receive said signal s_(y),and execute computer-readable instructions to determine touch input datafrom said touch input, and generate a touch signal s_(x) indicative ofthe touch input data; and a gesture interpretation unit according toclaim 11, wherein the gesture interpretation unit is configured toreceive said touch signal s_(x).
 21. The unit according to claim 11,wherein the first, second and third touch inputs are entirely onportions of the touch surface configured to detect the positions x_(nt),y_(nt), and the pressure data p_(nt) for the first, second and thirdtouch inputs.